iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
自我挑戰組

Identity Management 系列 第 26

26 - OAuth Resource owner password credentials grant : request & response

  • 分享至 

  • xImage
  •  

10 - OAuth (4) Resource owner password credentials grant

https://ithelp.ithome.com.tw/upload/images/20220921/20116003vUknCgx5su.png

Step 4

Client直接將使用者的 credentials 透過 POST method 送到 Authorization server,params 包含

POST /token

Content-Type: application/x-www-form-urlencoded

{
  grant_type: password,
  scope: xxx,
  resource: xxx,
  username: xxx,
  password:xxx
}
  • grant_type: 這裡使用 "password" 代表我們要使用 OAuth Resource owner password credentials grant
  • scope: 代表這個請求所想要取得授權的內容,譬如 get:data
  • resource: 在 Authorization server 所登記的 Resource server 的 ID
  • username & password: 使用者的 credentials

會發現這裡沒有送出 client_idAuthorization server,那是因為這時候的 Client 已經直接取得使用者的 credentials,意義上可以說是使用者已經直接授權給 Client 了,因此不需要特別檢查這個 Client 是否為有註冊的 Client

Step 5

Authorization server 收到 Client 送來的使用者 credentials、驗證完之後,就會回傳 response 給 Client,當中包含 access token 和 refresh token 等資訊。

{
  access_token: xxx,
  token_type: xxx,
  expired_in: xxx,
  refresh_token: xxx
}
  • access_token: Client 可以用來向 Resource server 發送請求
  • token_type: token 的類型,譬如 "Bearer"
  • expired_in: token 的續存時間
  • refresh_token: 在 access_token 到期之後,Client 可以拿 refresh_tokenAuthorization server 取得新的 access_token

由於這裡是透過 api 的 request/response 來傳遞資訊,因此相較於直接把 access token 放在 redirect url 當中還要來得安全許多


上一篇
25 - OAuth Implicit grant: request & response
下一篇
27 - OAuth Client credentials grant : request & response
系列文
Identity Management 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言